#include <stdio.h>
#include <string.h>
#define max(a,b) (a>b?a:b)

char words[10010][50];
int hash[10010];

int ones(int a)
{
	int num=0;

	while(a)
	{
		num+=a & 1;
		a=a>>1;
	}
	return num;
}
int miss(char a[],char b[])
{
	int i,j,m,n;
	int tab[50][50];

	m=strlen(a);
	n=strlen(b);
    memset(tab,0,sizeof(tab));
	for(i=m-1;i>=0;i--)
	{
		for(j=n-1;j>=0;j--)
		{
			if(a[i]!=b[j])
			{
				tab[i][j]=max(tab[i+1][j],tab[i][j+1]);
			}
			else
			{
				tab[i][j]=tab[i+1][j+1]+1;
			}
		}
	}
	
	if(tab[0][0]==m || tab[0][0]==n)
	{
		return 1;
	}
	return -1;
}
int wrong(char a[],char b[])
{
	int len,i,dif;

	len=strlen(a);
	dif=0;
	for(i=0;i<len;i++)
	{
		if(a[i]!=b[i])
		{
			dif++;
			if(dif>1)
			{
				return -1;
			}
		}
	}
	if(dif)
	{
		return 1;
	}
	return 0;
}

int turn(char a[],char b[])
{
	int len,i,dif,pass;
	int ta,tb;

	len=strlen(a);
	dif=pass=0;
	for(i=0;i<len;i++)
	{
		if(a[i]!=b[i])
		{
			if(pass)
			{
				return -1;
			}
			if(!dif)
			{
				ta=b[i];
				tb=a[i];
				dif=1;
			}
			else
			{
				if(ta==a[i] && tb==b[i])
				{
					pass=1;
					dif=0;
				}
				else
				{
					return -1;
				}
			}
		}
	}
	if(dif)
	{
		return -1;
	}
	return 1;
}

int main(void)
{
	int n,q,i,j,k,hashi;
	char in[50];

	scanf("%d",&n);
	memset(hash,0,sizeof(hash));
	for(i=0;i<n;i++)
	{
		scanf("%s",&words[i][1]);
		words[i][0]=strlen(&words[i][1]);
		for(k=1;k<=words[i][0];k++)
		{
			hash[i]=hash[i] | 1<<(words[i][k]-'a');
		}
	}
	scanf("%d",&q);
	for(i=0;i<q;i++)
	{
		scanf("%s",&in[1]);
		in[0]=strlen(&in[1]);
		hashi=0;
		for(k=1;k<=in[0];k++)
		{
			hashi=hashi | 1<<(in[k]-'a');
		}
		for(j=0;j<n;j++)
		{
			if(hash[j]==hashi && in[0] == words[j][0] && wrong(&in[1],&words[j][1])==0)
			{			
				printf("%s is correct\n",&in[1]);
				break;
			}
		}
		if(j<n)
		{
			continue;
		}
		for(j=0;j<n;j++)
		{
			if(ones(hash[j]^hashi)>2)
			{
				continue;
			}
			if((in[0]-words[j][0]==1 || words[j][0]-in[0]==1) && miss(&in[1],&words[j][1])== 1)
			{
				printf("%s is a misspelling of %s\n",&in[1],&words[j][1]);
				break;
			}
			if(in[0]==words[j][0] && (wrong(&in[1],&words[j][1]) == 1 || turn(&in[1],&words[j][1]) == 1))
			{	
				printf("%s is a misspelling of %s\n",&in[1],&words[j][1]);
				break;
			}
		}
		if(j>=n)
		{
			printf("%s is unknown\n",&in[1]);
		}
	}
	return 0;
}

